home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Experimental BBS Explossion 3
/
Experimental BBS Explossion III.iso
/
games
/
nhak_src.zip
/
MAKEFILE.OS2
< prev
next >
Wrap
Text File
|
1993-03-16
|
18KB
|
561 lines
# SCCS Id: @(#)Makefile.os2 3.0 90/02/22
# OS/2 NetHack 3.0 Makefile for Microsoft(tm) C 5.1 -- Timo Hakulinen
#
# NDMAKE ver 4.5 or MS-NMAKE is required, MS-MAKE will not work.
# To enable either make utility, uncomment the respective
# make-specific macros. If you plan to cross-compile in DOS, your
# best bet is NDMAKE, since it requires less memory than NMAKE.
# To compile in OS/2 use NMAKE or compatible. Remember to set
# $(RLIBS) to real mode libraries if compiling in DOS, and to
# protected mode libraries for compilation in OS/2.
#
# Copy pctty.c, pcunix.c, pcmain.c, msdos.c and this file
# (+ termcap library if used) into $(SRC) directory, rename
# this file to "makefile" (important, some targets rely on it),
# compile and link inside $(SRC). Termcap library can be built
# from termcap sources using makefile.lib in "others" directory.
#
# When using CodeView versions earlier than ver. 2.3, define
# OS2_CODEVIEW in pcconf.h and set HACKDIR (+ TERM and TERMCAP
# if used) in OS/2 config.sys. Otherwise path searches may fail.
#
# Note that $(GAMEDIR) must exist prior to compilation.
#
CC = cl
LINK = link
LIB = lib
# Enable the upper three lines for NDMAKE and lower three for MS-NMAKE.
# ($(MAKE) macro is often predefined, so we use $(MAKEBIN) instead).
MAKEBIN = make
AB = $*.c
CB = $*.c
#MAKEBIN = nmake
#AB = $(@B).c
#CB = $$(@B).c
# For those of us who have these on PC.
#YACC = yacc
#LEX = lex
YACC = bison -y
LEX = flex
# Standard file names may vary in PC installations.
YTABC = y_tab.c
YTABH = y_tab.h
LEXYYC = lexyy.c
# Directories (makedefs hardcodes these, don't change them).
INCL = ..\include
AUX = ..\auxil
SRC = ..\src
OBJ = $(SRC)\o2
# The game name and description.
GAME = nethack
GAMEDES = NetHack 3.0
# The game directory.
GAMEDIR = \games\$(GAME)
# Memory model, compile only, disable optimization, remove stack probes,
# 80286 instruction set, dedicated datasegment for items >= 5 bytes,
# pack structures on 1 byte boundaries, generate code for 8087
# coprocessor, compiler warning level, include file path.
CFLAGS = /AL /c /Od /Gs /G2 /Gt5 /Zp1 /FPi87 /W1 /I$(INCL) $(CDFLAGS)
# + prepare for CodeView symbolic debugger.
CDFLAGS =
#CDFLAGS = /Zi
# Don't ignore case in symbols, no default lib search, stack 4096 bytes.
# (actually a bit of overkill), allow max 1024 segments in program.
LFLAGS = /noig /nod /stack:4096 /seg:1024 $(LDFLAGS)
# + prepare for CodeView symbolic debugger.
LDFLAGS =
#LDFLAGS = /CO
# Protected mode C libraries for 8087 (change if necessary),
# OS/2 API entry points.
PLIBS = llibc7p doscalls
# C libraries used by makedefs and lev_comp (change if necessary).
# If compilation is done in DOS, enable the upper line, if in OS/2,
# the lower (protected mode libraries).
RLIBS = llibc7r
#RLIBS = $(PLIBS)
# Module definition file for OS/2.
OS2DEFS = $(GAME).def
# The default make target (so just typing 'make' is useful).
default: $(GAME)
# If you have yacc and lex programs and make any changes, comment out the
# upper two lines and uncomment the lower two.
do_yacc: yacc_msg
do_lex: lex_msg
#do_yacc: yacc_act
#do_lex: lex_act
# Optional high-quality BSD random number generation routines (see pcconf.h).
# Set to nothing if not used.
RANDOM = $(OBJ)\random.o
#RANDOM =
# If TERMLIB defined in pcconf.h, comment out the upper line and
# uncomment the lower. If the termcap-library doesn't exist, use
# others\makefile.lib to build it.
TERMLIB =
#TERMLIB = termlib.lib
######################################################################
#
# Nothing below this line should have to be changed.
#
# Other things that have to be reconfigured are in
# config.h, pcconf.h and possibly system.h.
#
# The game filename.
GAMEFILE = $(GAMEDIR)\$(GAME).exe
# Object files for makedefs.
MAKEOBJS = $(OBJ)\makedefs.o $(OBJ)\monst.o $(OBJ)\objects.o
# Object files for special levels compiler.
SOBJ01 = $(OBJ)\lev_comp.o $(OBJ)\lev_lex.o $(OBJ)\lev_main.o $(OBJ)\alloc.o
SOBJ02 = $(OBJ)\monst.o $(OBJ)\objects.o $(OBJ)\panic.o
SPLEVOBJS = $(SOBJ01) $(SOBJ02)
VOBJ01 = $(OBJ)\allmain.o $(OBJ)\alloc.o $(OBJ)\apply.o $(OBJ)\artifact.o
VOBJ02 = $(OBJ)\attrib.o $(OBJ)\bones.o $(OBJ)\cmd.o $(OBJ)\dbridge.o
VOBJ03 = $(OBJ)\decl.o $(OBJ)\demon.o $(OBJ)\do.o $(OBJ)\do_name.o
VOBJ04 = $(OBJ)\do_wear.o $(OBJ)\dog.o $(OBJ)\dogmove.o $(OBJ)\dokick.o
VOBJ05 = $(OBJ)\dothrow.o $(OBJ)\eat.o $(OBJ)\end.o
VOBJ06 = $(OBJ)\engrave.o $(OBJ)\exper.o $(OBJ)\extralev.o $(OBJ)\fountain.o
VOBJ07 = $(OBJ)\getline.o $(OBJ)\hack.o $(OBJ)\invent.o $(OBJ)\lock.o
VOBJ08 = $(OBJ)\mail.o $(OBJ)\main.o $(OBJ)\makemon.o $(OBJ)\mcastu.o
VOBJ09 = $(OBJ)\mhitm.o $(OBJ)\mhitu.o $(OBJ)\mklev.o $(OBJ)\mkmaze.o
VOBJ10 = $(OBJ)\mkobj.o $(OBJ)\mkroom.o $(OBJ)\mon.o $(OBJ)\mondata.o
VOBJ11 = $(OBJ)\msdos.o $(OBJ)\monmove.o $(OBJ)\monst.o $(OBJ)\mthrowu.o
VOBJ12 = $(OBJ)\music.o $(OBJ)\o_init.o $(OBJ)\objects.o
VOBJ13 = $(OBJ)\objnam.o $(OBJ)\options.o $(OBJ)\pager.o $(OBJ)\pickup.o
VOBJ14 = $(OBJ)\polyself.o $(OBJ)\potion.o $(OBJ)\pray.o $(OBJ)\pri.o
VOBJ15 = $(OBJ)\priest.o $(OBJ)\prisym.o $(RANDOM) $(OBJ)\read.o
VOBJ16 = $(OBJ)\restore.o $(OBJ)\rip.o $(OBJ)\rnd.o $(OBJ)\rumors.o
VOBJ17 = $(OBJ)\save.o $(OBJ)\search.o $(OBJ)\shk.o $(OBJ)\shknam.o
VOBJ18 = $(OBJ)\sit.o $(OBJ)\sounds.o $(OBJ)\sp_lev.o $(OBJ)\spell.o
VOBJ20 = $(OBJ)\steal.o $(OBJ)\termcap.o $(OBJ)\timeout.o $(OBJ)\topl.o
VOBJ21 = $(OBJ)\topten.o $(OBJ)\track.o $(OBJ)\trap.o $(OBJ)\tty.o
VOBJ22 = $(OBJ)\u_init.o $(OBJ)\uhitm.o $(OBJ)\unix.o $(OBJ)\vault.o
VOBJ23 = $(OBJ)\weapon.o $(OBJ)\were.o $(OBJ)\wield.o
VOBJ24 = $(OBJ)\wizard.o $(OBJ)\worm.o $(OBJ)\worn.o $(OBJ)\write.o
VOBJ25 = $(OBJ)\zap.o
HHOBJ = $(OBJ)\version.o
VOBJ = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) $(VOBJ06) $(VOBJ07) \
$(VOBJ08) $(VOBJ09) $(VOBJ10) $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) \
$(VOBJ15) $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ20) $(VOBJ21) $(VOBJ22) \
$(VOBJ23) $(VOBJ24) $(VOBJ25)
HOBJ = $(VOBJ) $(HHOBJ)
PCCONF_H = $(INCL)\pcconf.h $(INCL)\msdos.h $(INCL)\system.h \
$(INCL)\extern.h $(INCL)\def_os2.h
GLOBAL_H = $(INCL)\global.h $(INCL)\coord.h $(PCCONF_H)
CONFIG_H = $(INCL)\config.h $(INCL)\tradstdc.h $(GLOBAL_H)
TRAP_H = $(INCL)\trap.h
PERMONST_H = $(INCL)\permonst.h $(INCL)\monattk.h $(INCL)\monflag.h
YOU_H = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) $(INCL)\mondata.h \
$(INCL)\monst.h $(INCL)\youprop.h $(INCL)\prop.h $(INCL)\pm.h
DECL_H = $(INCL)\decl.h $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \
$(INCL)\onames.h $(INCL)\color.h
HACK_H = $(CONFIG_H) $(DECL_H) $(INCL)\monsym.h $(INCL)\mkroom.h \
$(INCL)\objclass.h $(INCL)\gold.h $(TRAP_H) $(INCL)\flag.h \
$(INCL)\rm.h $(INCL)\hack.h
# The default target
all: makedefs lev_comp $(GAME) auxil
@echo Done.
# The main target
$(GAME): $(OBJ) $(GAMEDIR)\$(GAME).exe
$(GAME).exe: $(GAMEDIR)\$(GAME).exe
$(GAMEDIR)\$(GAME).exe: $(GAME).res
$(LINK) @$(GAME).res
$(GAME).res: $(HOBJ) $(OS2DEFS)
@echo $(VOBJ01) +> $@
@echo $(VOBJ02) +>> $@
@echo $(VOBJ03) +>> $@
@echo $(VOBJ04) +>> $@
@echo $(VOBJ05) +>> $@
@echo $(VOBJ06) +>> $@
@echo $(VOBJ07) +>> $@
@echo $(VOBJ08) +>> $@
@echo $(VOBJ09) +>> $@
@echo $(VOBJ10) +>> $@
@echo $(VOBJ11) +>> $@
@echo $(VOBJ12) +>> $@
@echo $(VOBJ13) +>> $@
@echo $(VOBJ14) +>> $@
@echo $(VOBJ15) +>> $@
@echo $(VOBJ16) +>> $@
@echo $(VOBJ17) +>> $@
@echo $(VOBJ18) +>> $@
@echo $(VOBJ20) +>> $@
@echo $(VOBJ21) +>> $@
@echo $(VOBJ22) +>> $@
@echo $(VOBJ23) +>> $@
@echo $(VOBJ24) +>> $@
@echo $(VOBJ25) +>> $@
@echo $(HHOBJ)>> $@
@echo $(GAMEDIR)\$(GAME)>> $@
@echo $(GAME)>> $@
@echo $(PLIBS) $(TERMLIB)>> $@
@echo $(OS2DEFS) $(LFLAGS);>> $@
$(OBJ):
-mkdir $(OBJ)
# Targets for makedefs.
makedefs: $(OBJ) makedefs.exe
makedefs.exe: makedefs.res
$(LINK) @makedefs.res
makedefs.res: $(MAKEOBJS)
@echo $(MAKEOBJS)> $@
@echo makedefs>> $@
@echo nul>> $@
@echo $(RLIBS)>> $@
@echo $(LFLAGS);>> $@
$(OBJ)\makedefs.o : $(CB) $(INCL)\config.h $(INCL)\permonst.h $(INCL)\objclass.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
# Targets for the special levels compiler.
lev_comp: $(OBJ) lev_comp.exe
lev_comp.exe: lev_comp.res
$(LINK) @lev_comp.res
lev_comp.res: $(SPLEVOBJS)
@echo $(SOBJ01) +> $@
@echo $(SOBJ02)>> $@
@echo lev_comp>> $@
@echo nul>> $@
@echo $(RLIBS)>> $@
@echo $(LFLAGS);>> $@
$(OBJ)\lev_comp.o : $(CB) $(HACK_H) $(INCL)\sp_lev.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\lev_lex.o : $(CB) $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev_comp.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\lev_main.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
lev_comp.c : lev_comp.y
$(MAKEBIN) do_yacc
lev_lex.c : lev_comp.l
$(MAKEBIN) do_lex
yacc_msg:
@echo lev_comp.y has changed. To update lev_comp.c and lev_comp.h run YACC.
yacc_act:
$(YACC) -d lev_comp.y
copy $(YTABC) lev_comp.c
copy $(YTABH) $(INCL)\lev_comp.h
del $(YTABC)
del $(YTABH)
lex_msg:
@echo lev_comp.l has changed. To update lev_lex.c run LEX.
lex_act:
$(LEX) lev_comp.l
copy $(LEXYYC) lev_lex.c
del $(LEXYYC)
#
# The following include files depend on makedefs to be created.
#
# date.h should be remade any time any of the source or include code
# is modified.
#
$(INCL)\date.h: $(VOBJ) makedefs.exe
makedefs -v
$(INCL)\trap.h: makedefs.exe
makedefs -t
$(INCL)\onames.h: makedefs.exe
makedefs -o
$(INCL)\pm.h: makedefs.exe
makedefs -p
data: $(AUX)\data.bas makedefs.exe
makedefs -d
rumors: $(AUX)\rumors.tru $(AUX)\rumors.fal makedefs.exe
makedefs -r
#
# The following programs vary depending on what OS you are using.
#
$(OBJ)\main.o: pc$(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ pc$(AB)
$(OBJ)\tty.o: pc$(CB) $(HACK_H) $(INCL)\func_tab.h
$(CC) $(CFLAGS) /Fo$@ pc$(AB)
$(OBJ)\unix.o: pc$(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ pc$(AB)
#
# Secondary targets
#
auxil: spec_lev data rumors
xcopy $(AUX)\cmdhelp $(GAMEDIR)
xcopy $(AUX)\help $(GAMEDIR)
xcopy $(AUX)\hh $(GAMEDIR)
xcopy $(AUX)\history $(GAMEDIR)
xcopy $(AUX)\license $(GAMEDIR)
xcopy $(AUX)\opthelp $(GAMEDIR)
xcopy $(AUX)\oracles $(GAMEDIR)
xcopy $(AUX)\data $(GAMEDIR)
xcopy $(AUX)\rumors $(GAMEDIR)
spec_lev: $(AUX)\castle.des $(AUX)\endgame.des $(AUX)\tower.des
lev_comp $(AUX)\castle.des
lev_comp $(AUX)\endgame.des
lev_comp $(AUX)\tower.des
xcopy castle $(GAMEDIR)
xcopy endgame $(GAMEDIR)
xcopy tower? $(GAMEDIR)
del castle
del endgame
del tower?
$(OS2DEFS):
@echo NAME $(GAME) WINDOWCOMPAT> $(OS2DEFS)
@echo DESCRIPTION '$(GAMEDES)'>> $(OS2DEFS)
@echo PROTMODE>> $(OS2DEFS)
@echo EXETYPE OS2>> $(OS2DEFS)
clean:
-del $(OBJ)\*.o
-rmdir $(OBJ)
spotless: clean
-del $(INCL)\date.h
-del $(INCL)\onames.h
-del $(INCL)\pm.h
-del makedefs.exe
-del lev_comp.exe
-del *.res
-del *.def
-del *.map
-del $(AUX)\data
-del $(AUX)\rumors
-del castle
-del endgame
-del tower?
#
# Other dependencies.
#
# MS-NMAKE doesn't give a damn about default rules here, so until
# that is fixed, we do this the hard way.
#
$(OBJ)\allmain.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\alloc.o : $(CB) $(CONFIG_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\apply.o : $(CB) $(HACK_H) $(INCL)\edog.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\artifact.o : $(CB) $(HACK_H) $(INCL)\artifact.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\attrib.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\bones.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\cmd.o : $(CB) $(HACK_H) $(INCL)\func_tab.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\dbridge.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\decl.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\demon.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\do.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\do_name.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\do_wear.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\dog.o : $(CB) $(HACK_H) $(INCL)\edog.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\dogmove.o : $(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\dokick.o : $(CB) $(HACK_H) $(INCL)\eshk.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\dothrow.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\eat.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\end.o : $(CB) $(HACK_H) $(INCL)\eshk.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\engrave.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\exper.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\extralev.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\fountain.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\getline.o : $(CB) $(HACK_H) $(INCL)\func_tab.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\hack.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\invent.o : $(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\ioctl.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\lock.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\makemon.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\mail.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\mcastu.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\mhitm.o : $(CB) $(HACK_H) $(INCL)\artifact.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\mhitu.o : $(CB) $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\mklev.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\mkmaze.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\mkobj.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\mkroom.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\mon.o : $(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\wseg.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\mondata.o : $(CB) $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\monmove.o : $(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\monst.o : $(CB) $(CONFIG_H) $(PERMONST_H) $(INCL)\monsym.h $(INCL)\eshk.h \
$(INCL)\vault.h $(INCL)\epri.h $(INCL)\color.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\msdos.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\mthrowu.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\music.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\o_init.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\objects.o : $(CB) $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h $(INCL)\prop.h \
$(INCL)\color.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\objnam.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\options.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\pager.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\panic.o : $(CB) $(CONFIG_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\pickup.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\polyself.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\potion.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\pray.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\pri.o : $(CB) $(HACK_H) $(INCL)\epri.h $(INCL)\termcap.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\priest.o : $(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h $(INCL)\epri.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\prisym.o : $(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\random.o : $(CB)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\read.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\restore.o : $(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\rip.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\rnd.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\rumors.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\save.o : $(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\search.o : $(CB) $(HACK_H) $(INCL)\artifact.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\shk.o : $(CB) $(HACK_H) $(INCL)\eshk.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\shknam.o : $(CB) $(HACK_H) $(INCL)\eshk.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\sit.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\sounds.o : $(CB) $(HACK_H) $(INCL)\edog.h $(INCL)\eshk.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\sp_lev.o : $(CB) $(HACK_H) $(INCL)\sp_lev.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\spell.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\steal.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\termcap.o : $(CB) $(HACK_H) $(INCL)\termcap.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\timeout.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\topl.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\topten.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\track.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\trap.o : $(CB) $(HACK_H) $(INCL)\edog.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\u_init.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\uhitm.o : $(CB) $(HACK_H) $(INCL)\artifact.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\vault.o : $(CB) $(HACK_H) $(INCL)\vault.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\version.o : $(CB) $(HACK_H) $(INCL)\date.h $(INCL)\patchlev.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\weapon.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\were.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\wield.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\wizard.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\worm.o : $(CB) $(HACK_H) $(INCL)\wseg.h
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\worn.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\write.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)
$(OBJ)\zap.o : $(CB) $(HACK_H)
$(CC) $(CFLAGS) /Fo$@ $(AB)